package win.demonlegion.service.inte;

import java.util.List;
import java.util.Set;

public interface CacheService {
    void setCache(String key, String value);
    void setCache(String key, String value, long expire);
    String getCache(String key);
    void deleteCache(String key);

    // 集合操作
    /**
     * 添加集合值
     */
    void addSetValue(String key, String value);

    /**
     * 添加多集合值
     */
    void addSetValues(String key, String[] values);

    /**
     * 删除集合值
     */
    void deleteSetValue(String key, String value);

    /**
     * 删除多集合值
     */
    void deleteSetValues(String key, String[] values);

    /**
     * 查询集合值
     */
    Set<String> selectSetValues(String key);

    /**
     * 判断集合值是否存在
     */
    boolean isInSet(String key, String value);

    /**
     * 查询集合大小
     */
    long countSetSize(String key);

    // 列表操作
    List<String> getSubList(String key, long start, long end);

    List<String> getList(String key);

    long leftPushValue(String key, String value);

    long leftPushValues(String key, List<String> values);

    long rightPushValue(String key, String value);

    long rightPushValues(String key, List<String> values);

    void setValue(String key, long index, String value);

    long removeAllValue(String key, String value);

    long removeValueFromLeft(String key, String value);

    long removeValueFromRight(String key, String value);

    long countListSize(String key);
}
